PHP Tekst
Home

PHP Tekst

PHP Tekst

Wanneer je tekst in computerprogramma gebruikt, worden stukjes tekst strings genoemd. Dit is omdat ze uit afzonderlijke items bestaan, aan elkaar geregen. Strings kunnen letters bevatten,
getallen, interpunctie, spaties, tabs of andere tekens.

Strings declaren

Er bestaan verschillende manieren om een ​​string in een PHP-programma te declaren. De eenvoudigste bestaat erin om de tekst tussen enkelvoudige aanhalingstekens te plaatsen:

$tekst =  'Ik zou graag een pake friet met mayonaise willen.';
print $tekst;
$tekst = 'fricandel';
print $tekst;
$tekst = '€ 5.50';
print $tekst;
$tekst = '"Ik ben aan het werken," zie ze.';
print $tekst;

Aangezien de string uit alle tekens bestaat die tussen de enkele aanhalingstekens staan, zal het volgende op het scherm getoond worden:

String aan elkaar plakken

Stel dat we 2 stukjes tekst hebben. Deze tekst willen we toekennen aan 1 variabele. Dit kunnen we als volgt oplossen:

$groet = 'Een goede morgen';
$aan = 'Jan';
$wens = 'toegewenst.';
$zin = $groet . ' ' . $$aan . '  ' . $wens;
echo $zin

We maken naast de toekenningsoperator (=) gebruik van een string-operator: de concatenatie, met het punt (.)

Hieronder zien we hoe je met interpolatie dit op elegantere manier kan doen.

Escape tekens

De enkele aanhalingstekens maken geen deel uit van de tekenreeks. Het zijn scheidingstekens, die PHP vertellen waar het begin en einde van de string is. Als u een enkel citaat wilt opnemen
in een string omringd door enkele aanhalingstekens, zet je een backslash (\) voor het enkelvoudig aanhalingsteken:

print '\'s Morgens eet ik een boterham met confituur.'

De \' tekenreeks wordt weergegeven als een enkelvoudig aanhalingsteken:

's Morgens ik een boterham met confituur.

De backslash vertelt de PHP-engine om het daarop volgende teken te behandelen als een letterlijk karakter en niet als een teken dat "einde van tekenreeks" betekent. Dit wordt 'het ontsnappen' genoemd, en de backslash wordt het escape-teken genoemd. Een escape-teken vertelt het systeem om iets speciaals te doen met het karakter dat erachter komt.

\a

Bell (alert)

\b

Backspace

\f

Formfeed

\n

New line

\r

Carriage return

\t

Horizontal tab

\v

Vertical tab

\'

Single quotation mark

\"

Double quotation mark

\\

Backslash

\?

Literal question mark

\ooo

ASCII character in octal notation

\xhh

ASCII character in hexadecimal notation

\xhhhh

Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal.

String interpolatie

Je kan een string ook declareren met behulp van dubbele aanhalingstekens. Het grootste verschil tussen enkele en dubbele aanhalingstekens is mogelijkheid om variabelen (placeholders) in de tekst te plaatsen als de tekst tussen dubbele aanhalingstekens staat. De waarde van de variabele wordt gesubstitueerd in de tekenreeks.

Als de variabele $naam de waarde Bob Dylan heeft, is 'Hallo $naam!' precies dat wat er tussen de enkelvoudige aanhalingstekens staat:

Hallo $name. "Hi $ user!

Wordt de waarde opgegeven tussen dubbele aanhalingstekens, "Hallo $naam!" dan wordt dat weergegeven als:

Hallo Bob Dylan!

Het voorbeeld van hierboven voor het aan elkaar plakken van strings:

$groet = 'Een goede morgen';
$aan = 'Jan';
$wens = 'toegewenst.';
$zin = "$groet $aan $wens";
echo $zin

Als de variabele niet bestaat uit één enkel woord, plaats je die tussen accolades:

$zin = "$groet {$persoon.aan} $wens";

Tekst valideren

PHP beschikt over een aantal ingebouwde functies waarmee je tekst kan manipuleren. We bespreken hier enkele functies die het nuttig zijn voor twee veelvoorkomende taken:

  1. validatie
  2. opmaak.

Validatie is het proces waarbij wordt gecontroleerd of de invoer, afkomstig van een externe bron, overeenstemt met de verwachte waarde. Het zorgt ervoor dat een gebruiker bijvoorbeeld in een
postcode input-element van een formulier wel degelijk een postcode heeft ingevoerd. Of in een -mail input-element een redelijk e-mailadres in het juiste formaat.

trim()

De functie trim() verwijdert witruimte aan het begin en einde van een tekenreeks.

strlen()

Gecombineerd met strlen(), dat je de lengte van een string retourneert, kun je dit gebruiken functie om de lengte van een ingediende waarde te achterhalen.

// $_POST['zipcode'] holds the value of the submitted form parameter
// "zipcode"
$zipcode = trim($_POST['zipcode']);
// Now $zipcode holds that value, with any leading or trailing spaces
// removed
$zip_length = strlen($zipcode);
// Complain if the zip code is not 4 characters long
if ($zip_length != 4) {
   print "'Een postcode bestaat uit maximum 4 karakter.';
}

trim() gebruik je om ervoor te zorgen iemand geen postcode van 8400, gevolgd door twee spaties, kan intypen. Soms zijn de extra spaties toevallig en soms kwaadaardig. Wat de reden ook is, we moeten ze verwijderen omdat in België een postcode slechts 4 karakters lang mag zijn en geen spaties op het einde mag bevatten.

Je kan trim() en strlen() combineren voor meer beknopte code:

if (strlen(trim($_POST['zipcode'])) != 4) {
   print 'Een postcode bestaat uit maximum 4 karakter.';
}

Strings vergelijken: ==

Om strings met elkaar te vergelijken gebruik je twee gelijkheidstekens:

if($_POST['email'] == 'bob.dylan@telenet.be') {
    print 'Welkom, Bob Dylan.';
}

strcasecmp()

Gebruik strcasecmp() om strings met elkaar te vergelijken zonder op hoofd- of kleine letters letten. Deze functie vergelijkt twee tekenreeksen waarbij verschillen tussen hoofd- en kleine letters worden genegeerd. Als de twee strings die je als argument opgeeft aan strcasecmp() hetzelfde zijn, ongeacht de eventuele verschillen tussen hoofd- en kleine letters, geeft die functie 0 terug.

if (strcasecmp($_POST['name'], 'Bob Dylan') == 0) {
   print "Welkom terug, Bob Dylan!";
}

Tekst opmaken

sprintf() retourneert een geformatteerde string, printf() drukt die af.

De volgende statements doen krak hetzelfdel:

printf(currentDateTime());
echo sprintf(currentDateTime());

We gaan in de voorbeelden sprintf gebruiken omdat we niet graag rechtstreeks naar het browservenster informatie sturen.

Regel Beschijving
%% percentteken
%b een geheel getal voorgesteld als een binair getal
%c Eén karakter gebaseerd op de ASCII waarde
%d Een decimaal getal met een + of -
%e Wetenschappelijke notatie (bijvoorbeeld 1.2e+2)
%u Een decimaal getal zonder + of -
%f Een floating-point getal
%F Floating-point getal
%o Een octaal getal
%s een string
%x Hexadecimaal getal in kleine letters
%X Hexadecimaal getal in hoofdletter

De functie sprintf() geeft je meer controle over hoe de uitvoer ziet eruit. Je geeft printf () een opmaakstring en een reeks items mee om weer te geven. Elke regel in de opmaakstring wordt vervangen door 1 item:

$price = 5;
$tax = 12;
echo sprintf('De maaltijd kost $%.2f', $price  +  ($price/100 * $tax));

De opmaakregel %.2f wordt vervangen door de waarde van $price/100 * $tax en opgemaakt met twee cijfers achter de komma heeft. Regels voor het formatteren van strings beginnen me t% en hebben vervolgens een aantal optionele modifiers:

  1. een opvulkarakter (padding character):
    is de tekenreeks, die de opmaakregel vervangt te kort, wordt dit karakter gebruikt om deze op te vullen; gebruik een spatie om op te vullen met spaties of een 0 om op te vullen met nullen
  2. Een teken:
    1. voor getallen plaatst sprintf een plusteken (+) vóór positieve getallen; zonder plusteken worden ze afgedrukt zonder een teken
    2. voor tekenreeksen zorgt een minteken (-) ervoor dat de tekenreeks rechts uitgelijnd wordt;
  3. Een minimale breedte: dit specificeert de minimale breedte die de vervangwaarde moet hebben; indien de vervangwaarde korter is, wordt het opvulkarakter gebruikt om het aan te vullen;
  4. Een punten een precisiegetal: voor floating-point getallen bepaalt dit hoeveel cijfers achter de komma worden geplaatst;

Na de modifiers komt een verplicht karakter dat aangeeft wat voor soort waarde moet worden afgedrukt. De drie die hier worden besproken zijn d voor decimale getallen, s voor strings,
en f voor floating-point waarden.

Meer info op: PHP Manual sprintf()

Voorbeelden

  1. Zero-padding with sprintf()
    	$zip = '6520';
    	$month = 2;
    	$day = 6;
    	$year = 2018;
    	echo sprintf("Postcode is %05d en de datum is %02d/%02d/%d", $zip, $month, $day, $year);
    
    resultaat:
    	Postcode is 06520 en de datum is 02/06/2007
    
  2. De sign modifier kan je gebruiken om positieve en negatieve waarden voor te stellen:
    	$min = -4;
    
    	$max = 32;
    
    	echo sprintf("Dit jaar was de minimum temperatuur %+d en de maximum %+d graden Celsius.", $min, $max);
    
    resultaat:
    	Dit jaar was de minimum temperatuur -4 en de maximum +32 graden Celsius.
    

Hoofd- en kleine letters

De functies strtolower() en strtoupper() retourneren respectievelijk een string in kleine- of in hoofdletters:

echo strtolower ('Victoires, Café, Brasserie, bAR');
echo strtoupper ('Victoires, Café, Brasserie, bAR');

De functie ucwords() genereert de eerste letter van elk woord in een tekenreeks in hoofdletters. Dit is handig om gecombineerd met strtolower() mooi gekapitaliseerde namen te produceren.

De functie ucfirst() en lcfirst() converteren de eerste letter naar respectievelijk een hoodletter of een kleine letter.

echo ucwords('bob dylan');
echo ucfirst('bob dylan');
echo lcfirst('BOB DYLAN');

stukken van een tekst

Met de functie substr () kan je een deel van een tekenreeks extraheren. Je wil bijvoorbeld alleen het begin van berichten op een overzichtspagina weergeven. Het voorbeeld laat zien hoe je substr() gebruikt om uit de ingediende formulierparameter een stuk te halen:

// Pak de eerste 30 tekensvan $ _POST ['comments'] en voeg een ellips toe
echo sprintf ($ _ POST ['comments'], 0, 30) . '...';

De drie argumenten voor substr() zijn de reeks om mee te werken, de startpositie van de te te extraheren substring en het aantal tekens dat moet worden geëxtraheerd. Het begin van de
string is positie 0, niet 1, dus substr ($ _ POST ['comments'], 0, 30) betekent 'extraheer' 30 tekens van $ _POST ['comments'] beginnend aan het begin van de string.

Wanneer u substr () een negatief getal geeft voor een startpositie, telt het terug vanaf het einde van de string. Een startpositie van -4 betekent "start vier tekens vanaf het einde:

echo 'Card: XX';
echo substr($_POST['card'],-4,4);

Als de kaartnummer 4000-1234-5678-9101 is, wordt 9101 geretourneerd.

Vervangen

In plaats van een substring te extraheren, verandert de functie str_replace() delen van een string. Het zoekt naar een substring en vervangt de substring door een nieuwe string. Dit is
handig voor eenvoudige, op sjablonen gebaseerde aanpassing van HTML. Het volgende voorbeeld gebruikt str_replace() om het klassenattribuut van <span> -tags in te stellen.

$cssClass = 'lunch';
$html = '<span class = "{class}">Friet met mayonaise<span><span class = "{class}">Frikandel met ui</ span> ';
echo str_replace ('{class}', $cssClass, $html);

Resultaat:

<span class = "lunch">Friet met mayonaise<span>
<span class = "lunch"> Frikandel met ui</ span>

Elke instantie van {class} (het eerste argument in str_replace()) wordt vervangen door lunch (de waarde van $ csssClass) in de reeks waaraan het derde argument is doorgegeven aan
str_replace().

Oefening

Probeer de voorbeelden uit.

JI
2019-02-27 18:05:44